home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / perl / 5.10.0 / Carp.pm < prev    next >
Text File  |  2008-07-24  |  1KB  |  52 lines

  1. package Carp;
  2.  
  3. our $VERSION = '1.08';
  4. # this file is an utra-lightweight stub. The first time a function is
  5. # called, Carp::Heavy is loaded, and the real short/longmessmess_jmp
  6. # subs are installed
  7.  
  8. our $MaxEvalLen = 0;
  9. our $Verbose    = 0;
  10. our $CarpLevel  = 0;
  11. our $MaxArgLen  = 64;   # How much of each argument to print. 0 = all.
  12. our $MaxArgNums = 8;    # How many arguments to print. 0 = all.
  13.  
  14. require Exporter;
  15. our @ISA = ('Exporter');
  16. our @EXPORT = qw(confess croak carp);
  17. our @EXPORT_OK = qw(cluck verbose longmess shortmess);
  18. our @EXPORT_FAIL = qw(verbose);    # hook to enable verbose mode
  19.  
  20. # if the caller specifies verbose usage ("perl -MCarp=verbose script.pl")
  21. # then the following method will be called by the Exporter which knows
  22. # to do this thanks to @EXPORT_FAIL, above.  $_[1] will contain the word
  23. # 'verbose'.
  24.  
  25. sub export_fail { shift; $Verbose = shift if $_[0] eq 'verbose'; @_ }
  26.  
  27. # fixed hooks for stashes to point to
  28. sub longmess  { goto &longmess_jmp }
  29. sub shortmess { goto &shortmess_jmp }
  30. # these two are replaced when Carp::Heavy is loaded
  31. sub longmess_jmp  {
  32.     local($@, $!);
  33.     eval { require Carp::Heavy };
  34.     return $@ if $@;
  35.     goto &longmess_real;
  36. }
  37. sub shortmess_jmp  {
  38.     local($@, $!);
  39.     eval { require Carp::Heavy };
  40.     return $@ if $@;
  41.     goto &shortmess_real;
  42. }
  43.  
  44. sub croak   { die  shortmess @_ }
  45. sub confess { die  longmess  @_ }
  46. sub carp    { warn shortmess @_ }
  47. sub cluck   { warn longmess  @_ }
  48.  
  49. 1;
  50. __END__
  51.  
  52.